package com.wyix.service;

import java.util.Map;

/**
 * 权限认证服务接口
 */
public interface AuthService {
    /**
     * 验证Token
     *
     * @param token 待验证的Token
     * @return 验证成功返回true，否则返回false
     */
    boolean verifyToken(String token);

    /**
     * 生成Token
     *
     * @param username 用户名
     * @return 生成的Token
     */
    String generateToken(String username);

    /**
     * 生成Token
     *
     * @param username 用户名
     * @param claims   额外信息
     * @return 生成的Token
     */
    String generateToken(String username, Map<String, Object> claims);

    /**
     * 生成刷新Token
     *
     * @param username 用户名
     * @return 生成的刷新Token
     */
    String generateRefreshToken(String username);

    /**
     * 从Token中获取用户名
     *
     * @param token Token
     * @return 用户名
     */
    String getUsernameFromToken(String token);

    /**
     * 刷新Token
     *
     * @param refreshToken 刷新Token
     * @return 新的访问Token
     */
    String refreshToken(String refreshToken);
}
